package com.netty.client;

import com.alibaba.fastjson.JSONObject;

public class SystemHandler extends WebSocketClientHandler {

    @Override
    public boolean onMessage(JSONObject msgJson, String msgString,JSONObject msgConfirm) {
        //接收普通消息
        logger.info(msgString);
        return false;
    }

    @Override
    public void onMessageByConfirm(JSONObject msgJson, String msgString) {
        //生产者 接收 消费者消费后的确认消息。
        logger.debug("收到 消费确认消息 {}",msgJson.getString("info"));
    }

    @Override
    public void onMessageByError(JSONObject msgJson, String msgString, String number) {
        //number 为错误的编号。__type=error的消息都调用这个方法
        //接收服务器发送的错误消息，如
        //1. 连接参数错误，连接地址没有指定 queue或queeType参数指定错误；
        //2. 连接参数错误，连接地址queeType参数指定值错误；
        //3. 通过__code对消息编码后，发送一次消费确认后，再次发送出现的错误
    }

    @Override
    public void onSuccess(JSONObject msgJson){
        //连接成功 服务器返回的消息
        logger.debug(msgJson.getString("info"));
    }

    @Override
    public void onNotice(JSONObject msgJson){
        //其他用户上线  下线的通知消息
        logger.debug("收到通知消息 {}",msgJson.getString("info"));
    }

    @Override
    public void onClose(Throwable cause) {
        //代码出现异常，执行本方法
    }
}